package com.example.excelxssfexport.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 用户实体类
 * 
 * 映射数据库中的excel_xssf_export_user表，包含用户的基本信息
 * 使用JPA注解进行ORM映射
 */
@Entity
@Table(name = "excel_xssf_export_user")
public class User {
    
    /** 用户唯一标识符，主键，自动生成 */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    /** 用户名 */
    private String username;
    
    /** 用户邮箱 */
    private String email;
    
    /** 用户全名 */
    private String fullName;
    
    /** 用户年龄 */
    private Integer age;
    
    /**
     * 无参构造函数
     */
    public User() {}
    
    /**
     * 带参构造函数
     * 
     * @param username 用户名
     * @param email 邮箱
     * @param fullName 全名
     * @param age 年龄
     */
    public User(String username, String email, String fullName, Integer age) {
        this.username = username;
        this.email = email;
        this.fullName = fullName;
        this.age = age;
    }
    
    // Getters and setters
    /**
     * 获取用户ID
     * 
     * @return 用户ID
     */
    public Long getId() {
        return id;
    }
    
    /**
     * 设置用户ID
     * 
     * @param id 用户ID
     */
    public void setId(Long id) {
        this.id = id;
    }
    
    /**
     * 获取用户名
     * 
     * @return 用户名
     */
    public String getUsername() {
        return username;
    }
    
    /**
     * 设置用户名
     * 
     * @param username 用户名
     */
    public void setUsername(String username) {
        this.username = username;
    }
    
    /**
     * 获取用户邮箱
     * 
     * @return 用户邮箱
     */
    public String getEmail() {
        return email;
    }
    
    /**
     * 设置用户邮箱
     * 
     * @param email 用户邮箱
     */
    public void setEmail(String email) {
        this.email = email;
    }
    
    /**
     * 获取用户全名
     * 
     * @return 用户全名
     */
    public String getFullName() {
        return fullName;
    }
    
    /**
     * 设置用户全名
     * 
     * @param fullName 用户全名
     */
    public void setFullName(String fullName) {
        this.fullName = fullName;
    }
    
    /**
     * 获取用户年龄
     * 
     * @return 用户年龄
     */
    public Integer getAge() {
        return age;
    }
    
    /**
     * 设置用户年龄
     * 
     * @param age 用户年龄
     */
    public void setAge(Integer age) {
        this.age = age;
    }
}